// 1. 创建index.js 

import axios from "axios";

// 2. 创建并导出获取定位城市的函数 getCurrentCity
export const getCurrentCity = () => {
  // 3. 判断 localStorage 中定位城市
  const localCity = JSON.parse(localStorage.getItem('hkzf_city'));
  if(!localCity) {
    // 4. 如果没有，就是有首页中获取定位城市的代码来获取,并且存储到本地存储中，然后返回该城市数据
    return new Promise((resolve, reject) => {
      const curCity =new window.BMapGL.LocalCity();
      curCity.get(async res => {
        try {
          // console.log('当前城市信息', res);
          const result= await axios.get(
            `http://localhost:8080/area/info?name=${res.name}`
          )
          // 存储到本地存储
          localStorage.setItem('hkzf_city', JSON.stringify(result.data.body))
          // 返回该城市数据
          // return result.data.body
          resolve(result.data.body)
        } catch (e) {
          // 获取定位城市失败
          reject(e)
        }
      })
    })
  }

  // 5. 如果有，直接返回本地存储中的城市数据
  // 为了处理异步操作，使用了Promise 返回值统一 所以使用Promise
  return Promise.resolve(localCity);
}

